-
Notifications
You must be signed in to change notification settings - Fork 201
Add omniborArtifactID
/omniborArtifactType
to product in affected
array
#410
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Add omniborArtifactID
/omniborArtifactType
to product in affected
array
#410
Conversation
The `affected` array is an array containing `product` objects, which must at minimum include an "identifier" (which may be a composite identifier composed of multiple fields) along with a set of version bounds or a default status. Products may also specify an assortment of additional fields which further constrain the applicability of the CVE to its intended target hardware or software. Previously, the set of identifiers available were: - A `vendor` and `product` - A `collectionURL` and `packageName` This commit adds support for a new pair of fields to support using OmniBOR Artifact IDs as identifiers in the `affected` array: - `artifactID`: The OmniBOR Artifact ID for an artifact. - `artifactType`: An enum indicating whether the `artifactID` is for an artifact to search in a file system for, or whether it's a build input to search against OmniBOR Input Manifests. The commit also adds data constraints to ensure this new identifier pair is not used alongside fields that don't make sense to use with OmniBOR, including the other identifier schemes, further decomposition information like `programFiles` or `programRoutines`, and version information. This work is submitted as an alternative formulation of the design proposed in the draft RFD on software identifiers [1], and as an alternative to the existing proposals for making the `cpeApplicability` structure generic [2] (instead of it being CPE-specific) and enhancing this new generic applicability structure with support for OmniBOR Artifact IDs [3]. If this change is accepted, then [2] and [3] should not be accepted. [1]: CVEProject#407 [2]: CVEProject#391 [3]: CVEProject#396 Signed-off-by: Andrew Lilley Brinker <[email protected]>
artifactID
/artifactType
to affected
arrayartifactID
/artifactType
to product in affected
array
Signed-off-by: Andrew Lilley Brinker <[email protected]>
Signed-off-by: Andrew Lilley Brinker <[email protected]>
(This really applies to the RFD #407, but I am pasting it here as well for completeness) Note Final Comment PeriodA Final Comment Period (FCP) has been called for this proposal. This is a final opportunity to raise new concerns with the proposal. The FCP will close at 2pm PDT / 5pm EDT July 3rd, at the end of the Quality Working Group Meeting. |
Signed-off-by: Andrew Lilley Brinker <[email protected]>
Sorry to completely ignore the FCP, in my defense this was discussed at the 2025-07-17 QWG meeting and is still not decided. IIUC Rough example within {
"vendor": "Example.org",
"product": "Example Enterprise",
"defaultStatus": "affected",
"identifierType": "OmniBOR",
"identifierSpecific:" {
"artifactID": "gitoid:blob:sha256:fee53a18d32820613c0527aa79be5cb30173c823a9b448fa4817767cc84c6f03",
"artifactType": "artifact"
}
} |
I would argue that the design had been decided, hence the FCP, and that yesterday's QWG meeting was relitigating a number of issues which had been covered in prior meetings and in the issue tracker. That said, I will be renaming the fields to include "omnibor" in the name, per the discussion in yesterday's meeting. As for the specific concept proposed here for new identifiers, I do think this would be inconsistent with existing "identifier pair types" like |
Thanks and I realize I'm behind in the discussion and decisions on this and am contributing to relitigation, which is generally bad form. I suspect adding "omnibor" to field names addresses my short term concern, and longer term, my concerns fall up to an overhaul of the (poorly named) To be clear, my comments are not meant to block merging this PR, subject to whatever additional changes are in flight. |
Thanks, and I agree there's a need to do a larger rework of the |
Per QWG discussions on 7/10 and 7/17, this updates the names of the OmniBOR fields to use the word "omnibor" in them, and also updates the data constraints to ensure 1) that both OmniBOR fields are used together if used, and 2) that extra fields which do not make sense in the context of a fine-grained identifier are not mixed in. This also adds some descriptions and comments to make this part of the schema clearer to other contributors. Signed-off-by: Andrew Lilley Brinker <[email protected]>
artifactID
/artifactType
to product in affected
arrayomniborArtifactID
/omniborArtifactType
to product in affected
array
The field names and constraints have been updated to reflect the changes discussed in the last two QWG meetings. |
Ah, it appears the older version of the JSON Schema spec we use doesn't support "dependentRequired" constraints, so I'll have to reformulate that constraint using the older mechanisms. I'll make a commit that corrects the error. It would also be nice if it were easier to catch these kinds of issues locally. |
The prior commit introduced a constraint using the field name 'dependentRequired', but the CVE Record Format is using an older form of the JSON Schema specification, where that field name is not used. This amends the schema to use the older "dependencies" constraint type, which behaves equivalently for our purposes. Signed-off-by: Andrew Lilley Brinker <[email protected]>
This amends the data constraints on the "product" object inside the "affected" array, permitting the "platforms" field, which CNAs can use to indicate what platform an identified binary is intended to run on. Signed-off-by: Andrew Lilley Brinker <[email protected]>
cve-schema/schema/CVE_Record_Format.json Lines 410 to 411 in 6fadd58
line 410 says buildInput but line 411 says: If the 'target' is 'build_input ' (the latter seems to be a minor documentation anomaly)
|
The
affected
array is an array containingproduct
objects, which must at minimum include an "identifier" (which may be a composite identifier composed of multiple fields) along with a set of version bounds or a default status. Products may also specify an assortment of additional fields which further constrain the applicability of the CVE to its intended target hardware or software.Previously, the set of identifiers available were:
vendor
andproduct
collectionURL
andpackageName
This commit adds support for a new pair of fields to support using OmniBOR Artifact IDs as identifiers in the
affected
array:omniborArtifactID
: The OmniBOR Artifact ID for an artifact.omniborArtifactType
: An enum indicating whether theomniborArtifactID
is for an artifact to search in a file system for, or whether it's a build input to search against OmniBOR Input Manifests.The commit also adds data constraints to ensure this new identifier pair is not used alongside fields that don't make sense to use with OmniBOR, including the other identifier schemes, further decomposition information like
programFiles
orprogramRoutines
, and version information.This work is submitted as an alternative formulation of the design proposed in the draft RFD on software identifiers 1, and as an alternative to the existing proposals for making the
cpeApplicability
structure generic 2 (instead of it being CPE-specific) and enhancing this new generic applicability structure with support for OmniBOR Artifact IDs 3.If this change is accepted, then 2 and 3 should not be accepted.